]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
endSessionDialog: don't process response until closed
authorRay Strode <rstrode@redhat.com>
Wed, 20 Feb 2013 18:30:26 +0000 (13:30 -0500)
committerRay Strode <rstrode@redhat.com>
Wed, 20 Feb 2013 19:16:54 +0000 (14:16 -0500)
Right now if a user logs out, they are thrown to the login screen
imediately, without even seeing the dialog close.

This commit fades the dialog out before processing the logout.

https://bugzilla.gnome.org/show_bug.cgi?id=694296

js/ui/endSessionDialog.js

index 7d46144ee2243ab713e3c43f030886082187eea1..b7850a484aecb0e8a51bab04d03619405ed1188e 100644 (file)
@@ -379,7 +379,12 @@ const EndSessionDialog = new Lang.Class({
             let signal = dialogContent.confirmButtons[i].signal;
             let label = dialogContent.confirmButtons[i].label;
             buttons.push({ action: Lang.bind(this, function() {
-                                       this._confirm(signal);
+                                       this.close(true);
+                                       let signalId = this.connect('closed',
+                                                                   Lang.bind(this, function() {
+                                                                       this.disconnect(signalId);
+                                                                       this._confirm(signal);
+                                                                   }));
                                    }),
                            label: label });
         }
@@ -387,9 +392,11 @@ const EndSessionDialog = new Lang.Class({
         this.setButtons(buttons);
     },
 
-    close: function() {
+    close: function(skipSignal) {
         this.parent();
-        this._dbusImpl.emit_signal('Closed', null);
+
+        if (!skipSignal)
+            this._dbusImpl.emit_signal('Closed', null);
     },
 
     cancel: function() {